package br.com.wagnerfull.precoimovel.cadastro;

import java.util.HashMap;
import java.util.Map;

import android.content.ContentValues;
import br.com.wagnerfull.precoimovel.MainActivity;
import br.com.wagnerfull.precoimovel.dao.EntidadeMobileEntity;

public class Entrada extends EntidadeMobileEntity {

	private Integer id;

	private Integer idSimulacao;

	private Double valorSinal;

	private Double valorParcela;

	private Integer quantParcelas;

	private Boolean flagSemestral;

	private Integer flagSemestralInt;

	public Integer getQuantParcelas() {
		return quantParcelas;
	}

	public void setQuantParcelas(Integer quantParcelas) {
		this.quantParcelas = quantParcelas;
	}

	public Integer getFlagSemestralInt() {
		if (flagSemestral != null) {
			return flagSemestral ? 1 : 0;
		}
		return flagSemestralInt;
	}

	public void setFlagSemestralInt(Integer flagSemestralInt) {
		this.flagSemestralInt = flagSemestralInt;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public Integer getIdSimulacao() {
		return idSimulacao;
	}

	public void setIdSimulacao(Integer idSimulacao) {
		this.idSimulacao = idSimulacao;
	}

	public Double getValorSinal() {
		return valorSinal;
	}

	public String getValorSinalFormatado() {
		if (valorSinal != null) {
			return MainActivity.formatarValor(valorSinal);
		}
		return "";
	}

	public String getValorParcelaFormatado() {
		if (valorParcela != null) {
			return MainActivity.formatarValor(valorParcela);
		}
		return "";
	}

	public void setValorSinal(Double valorSinal) {
		this.valorSinal = valorSinal;
	}

	public Double getValorParcela() {
		return valorParcela;
	}

	public void setValorParcela(Double valorParcela) {
		this.valorParcela = valorParcela;
	}

	public Boolean getFlagSemestral() {
		if (flagSemestralInt != null) {
			return flagSemestralInt.intValue() == 1 ? Boolean.TRUE
					: Boolean.FALSE;
		}
		return flagSemestral;
	}

	public void setFlagSemestral(Boolean flagSemestral) {
		this.flagSemestral = flagSemestral;
	}

	/**
	 * 
	 */
	private static final long serialVersionUID = -5321320104297988605L;

	@Override
	public Map<String, String> getMapeamento() {
		Map<String, String> retorno = new HashMap<String, String>();
		retorno.put("id", "id");
		retorno.put("idSimulacao", "id_simulacao");
		retorno.put("valorSinal", "valor_sinal");
		retorno.put("valorParcela", "valor_parcela");
		retorno.put("flagSemestralnt", "flag_semestral");
		retorno.put("quantParcelas", "quant_parcelas");
		return retorno;
	}

	@Override
	public ContentValues getContentValues() {
		ContentValues contentValues = new ContentValues();
		contentValues.put("id", this.id);
		contentValues.put("id_simulacao", this.idSimulacao);
		contentValues.put("valor_sinal", this.valorSinal);
		contentValues.put("valor_parcela", this.valorParcela);
		contentValues.put("flag_semestral", this.getFlagSemestralInt());
		contentValues.put("quant_parcelas", this.quantParcelas);
		return contentValues;
	}

	@Override
	public String toString() {
		return "entrada";
	}

	public Double getValorSinalParcelas() {
		Double retorno = 0D;
		if (valorSinal != null) {
			retorno += valorSinal;
			if (quantParcelas != null && valorParcela != null) {
				retorno += (valorParcela * quantParcelas);
			}
		}
		return retorno;
	}

}
